package com.gopay.common.domain.ptbank;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Version;
import java.util.Date;

/**
 * Entity: G商融通银行监管上传文件表
 */
@Entity
@Table(name = "GSRT_BANK_SUPERVISE_FILE")
public class GsrtBankSuperviseFile implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	/** 
	 * 银行监管iD
	 */
	private Long id;

	/** 
	 * 乐观锁版本号
	 */
	private Long version;

	private Long logId;

	/** 
	 * 商户的Cust_id
	 */
	private String merCustId;

	private String bankSuperviseName;

	/** 
	 * 银行平台ID
	 */
	private Long bankSuperviseId;

	/** 
	 * 发送银行状态
	已发送：01；
	未发送：02   ；
	发送失败：03 ；
	发送中：04
	 */
	private String bankState;

	/** 
	 * 银行ftp路径
	 */
	private String bankFileUrl;

	/** 
	 * 国付宝ftp路径
	 */
	private String gopayFileUrl;

	private String fileName;

	private String commentRk;

	/** 
	 * 创建时间
	 */
	private Date createdTs;

	/** 
	 * 记录最后修改时间
	 */
	private Date lastUpdTs;

	private String remark;

	private String remark2;

	private String remark3;
	/**
	 * 操作员
	 */
	private String operator;
	
	public GsrtBankSuperviseFile() {
	}

	public GsrtBankSuperviseFile(Long id, Long version, Long logId, String merCustId, String bankSuperviseName,
								 Long bankSuperviseId, String bankState, String bankFileUrl, String gopayFileUrl,
								 String fileName, String commentRk, Date createdTs, Date lastUpdTs, String remark,
								 String remark2, String remark3) {
		this.id = id;
		this.version = version;
		this.logId = logId;
		this.merCustId = merCustId;
		this.bankSuperviseName = bankSuperviseName;
		this.bankSuperviseId = bankSuperviseId;
		this.bankState = bankState;
		this.bankFileUrl = bankFileUrl;
		this.gopayFileUrl = gopayFileUrl;
		this.fileName = fileName;
		this.commentRk = commentRk;
		this.createdTs = createdTs;
		this.lastUpdTs = lastUpdTs;
		this.remark = remark;
		this.remark2 = remark2;
		this.remark3 = remark3;
	}

	@Id
	@SequenceGenerator(name = "GsrtBankSuperviseFileSequence", sequenceName = "GSRT_BANK_SUPERVISE_FILE_SEQ")
	@GeneratedValue(generator = "GsrtBankSuperviseFileSequence", strategy = GenerationType.SEQUENCE)
	@Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Version
	@Column(name = "VERSION", precision = 22, scale = 0)
	public Long getVersion() {
		return this.version;
	}

	public void setVersion(Long version) {
		this.version = version;
	}

	@Column(name = "LOG_ID", nullable = false, precision = 22, scale = 0)
	public Long getLogId() {
		return this.logId;
	}

	public void setLogId(Long logId) {
		this.logId = logId;
	}

	@Column(name = "MER_CUST_ID", nullable = false, length = 10)
	public String getMerCustId() {
		return this.merCustId;
	}

	public void setMerCustId(String merCustId) {
		this.merCustId = merCustId;
	}

	@Column(name = "BANK_SUPERVISE_NAME", nullable = false, length = 50)
	public String getBankSuperviseName() {
		return this.bankSuperviseName;
	}

	public void setBankSuperviseName(String bankSuperviseName) {
		this.bankSuperviseName = bankSuperviseName;
	}

	@Column(name = "BANK_SUPERVISE_ID", nullable = false, precision = 22, scale = 0)
	public Long getBankSuperviseId() {
		return this.bankSuperviseId;
	}

	public void setBankSuperviseId(Long bankSuperviseId) {
		this.bankSuperviseId = bankSuperviseId;
	}

	@Column(name = "BANK_STATE", nullable = false, length = 50)
	public String getBankState() {
		return this.bankState;
	}

	public void setBankState(String bankState) {
		this.bankState = bankState;
	}

	@Column(name = "BANK_FILE_URL", length = 200)
	public String getBankFileUrl() {
		return this.bankFileUrl;
	}

	public void setBankFileUrl(String bankFileUrl) {
		this.bankFileUrl = bankFileUrl;
	}

	@Column(name = "GOPAY_FILE_URL", nullable = false, length = 200)
	public String getGopayFileUrl() {
		return this.gopayFileUrl;
	}

	public void setGopayFileUrl(String gopayFileUrl) {
		this.gopayFileUrl = gopayFileUrl;
	}

	@Column(name = "FILE_NAME", nullable = false, length = 60)
	public String getFileName() {
		return this.fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	@Column(name = "COMMENT_RK", length = 50)
	public String getCommentRk() {
		return this.commentRk;
	}

	public void setCommentRk(String commentRk) {
		this.commentRk = commentRk;
	}

	@Column(name = "CREATED_TS", nullable = false)
	public Date getCreatedTs() {
		return this.createdTs;
	}

	public void setCreatedTs(Date createdTs) {
		this.createdTs = createdTs;
	}

	@Column(name = "LAST_UPD_TS", nullable = false)
	public Date getLastUpdTs() {
		return this.lastUpdTs;
	}

	public void setLastUpdTs(Date lastUpdTs) {
		this.lastUpdTs = lastUpdTs;
	}

	@Column(name = "REMARK", length = 50)
	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "REMARK2", length = 50)
	public String getRemark2() {
		return this.remark2;
	}

	public void setRemark2(String remark2) {
		this.remark2 = remark2;
	}

	@Column(name = "REMARK3", length = 50)
	public String getRemark3() {
		return this.remark3;
	}

	public void setRemark3(String remark3) {
		this.remark3 = remark3;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
	}
	@Column(name = "OPERATOR", length = 200)
	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}
}
